package QianFeng02;

/*冒泡排序算法
 * 比较相邻的两个元素。如果第一个比第二个大，就交换它们两个。
 * 对每一个相邻的元素作同样的工作，从开始第一到结尾的最后一对。在这一点，最后的元素应该会是最大的数 。
 * 针对所有的元素重复以上步骤，除了最后一个。
 * 持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。
 * 相同的元素的前后顺序没有改变，所有冒泡排序算法是一种稳定的程序算法。
 */
public class Test7 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] nums = {34,4,56,17,90,65};//待排序的数列

		//外循环控制轮数
		for(int i=0;i<nums.length;i++) {

			for(int j=0;j<nums.length-1-i;j++) {

				if(nums[j]>nums[j+1]) {
					nums[j] = nums[j] + nums[j+1];
					nums[j+1] = nums[j] - nums[j+1];
					nums[j] = nums[j] - nums[j+1];
				}
			}
		}

		for(int n:nums) {
			System.out.print(n+" ");
		}
	}

}


/*
34 4 56 17 90 65

4 34 17 56 65 90  //第一轮比较  5次

4 17 34 56 65     //第二轮比较  4次

4 17 34 56        //第三轮比较  3次

4 17 34           //第四轮比较  2次

4 17              //第五轮比较  1次
*/